<?
class DBFunction{
   var $conn;
   
   //******************* Connect Method ***************************************
   public function connect($host,$usernm,$passwd,$dbname,$charset){
      $this->conn	= mysql_connect($host,$usernm,$passwd)
	           or die(" $host,$usernm,$password,$dbname,$charset ไม่สามารถติดต่อฐานข้อมูลได้".mysql_error());
      mysql_query($charset);
      mysql_select_db($dbname);
   }
	
   public function getConn(){
      return $this->conn;
   }
	
   public function close(){
      mysql_close($this->conn);
   }
	
	//********************************** Copy Function *************************
   //ใช้บันทึกรูปลง folder
   public function copyPic($tmp_name,$fileupload){ 
      $result = copy($tmp_name,"$fileupload");
	  return $result;
   }
	
   //********************************** SQL QUERY Function *************************
   //ใช้ query คำสั่ง sql
   public function query($sql){ //Parameter : คำสั่ง sql
      $result = mysql_query($sql)or die("$sql <br>".mysql_error());
	  return $result;
   }
   
   public function dbquery($db,$sql){  //Parameter :  ชื่อดาต้าเบส,คำสั่ง sql
      $result = mysql_db_query($db,$sql)or die("$sql <br>".mysql_error());
	  return $result;
   }
   
   //ใช้ query ข้อมูลทั้งหมด
    public function allQuery($table,$where){
	    if($where != "") $where = " where $where ";
        $sql = "select * from $table $where";
	    $result = $this->query($sql);
	    return $result;
   }
   
   //ใช้ query ข้อมูลเฉพาะ field ที่กำหนด
    public function queryField($field,$table,$where){ 
      if($where != "") $where = " where $where ";
	  $sql = "select $field from $table $where";
	  $result = $this->query($sql);
	  return $result;
   }
   
   //ใช้เพิ่มข้อมูลลงในฐานข้อมูล
   public function insert($table,$data){  //Parameter : ชื่อตาราง, ข้อมูล (อาร์เรย์ 2 มิติ  {ชื่อฟิวส์=>ข้อมูล} )
      $i=1;
      foreach($data as $key=>$val){
         if($i!=1){ $fields.=", ";  $values.=", "; }
         $fields .= "$key";
         $values .= "'$val'";
         $i++;
      }
      $sql = "INSERT INTO $table ($fields) VALUES ($values)";
      return mysql_query($sql)or die("$sql <br>".mysql_error());
   }
   
   //ใช้แก้ไขข้อมูล หรือเพ่ิ่มข้อมูลใหม่แทนข้อมูลใหม่ลงในฐานข้อมูล
   public function update($table,$data,$where){  //Parameter : ชื่อตาราง, อาร์เรย์ 2 มิติ{ชื่อฟิวส์=>ข้อมูล}, คำสั่ง Where
      $i=1;
      foreach($data as $key=>$val){
         if($i!=1){ $modifs.=", "; }
         $modifs .= $key." = '".$val."'";
         $i++;
      }
      $sql = ("UPDATE $table SET $modifs WHERE $where");
      $result = mysql_query($sql)or die("$sql <br>".mysql_error());
	  return $result;
   }
   
   //ใช้ลบข้อมูล
   public function delete($table, $where){ //Parameter : ชื่อตาราง , คำสั่ง Where
      $sql = "DELETE FROM $table WHERE $where";
      $result = mysql_query($sql)or die("$sql <br>".mysql_error());
	  return $result;
   }
   
    
   //************************* คำสั่ง Format ต่าง ๆ ***************************************
   //ใช้รัน id
    public function getMax_ID_PK($table,$char){  // รันรหัสในรูปแบบ N00001 ::รับค่า ชื่อตาราง,อักขระนำหน้า
 
	  $sql = " SHOW COLUMNS FROM $table ";
	  $res = $this->query($sql);
	  $fetch = mysql_fetch_array($res);
	  $id = $fetch[0]; // PK
	  $type = $fetch[1]; // Type(length)
	  $length_column = mb_substr($type,mb_strrpos($type,"(")+1,1);  // หาความกว้างของฟิวส์
	  $sub_char=substr($char,0,9);
	  $len_ch = mb_strlen($sub_char); // จำนวนอักขระ นำหน้า
	  $length_column -= $len_ch;  // หาความกว้างให้ ฟิวส์ใหม่  (ไม่รวมอักขระ)  N01 ==>  01  ==> 2 ตัว
	  /*
	  $thistime = date("Y-m-d");
	  $day=substr($thistime,0,4);
	  $day.=substr($thistime,5,2);
	  $day.=substr($thistime,8,2);
	  */
	  $maxid = $this->getMax_Column($table,$id,""); // หาค่ามากที่สุดจากฟิวส์
	  if($len_ch>0) // ถ้ามีอักขระนำหน้า ต้องลบออกก่อน
	     $maxid = mb_substr($maxid,$len_ch);
	  $id = $char.sprintf("%'00".$length_column."d",$maxid+1);
   
    return $id;
    }
     
    //ใช้ Login 
	   public function getLogin_sql($table,$where){ //ดึงแถวข้อมูล โดยให้ระบุคำสั่ง sql เข้ามา
        if($where != "") $where = " where $where ";
        $sql = "select * from $table $where";
		$result = mysql_query($sql)or die(mysql_error());
		return $result;
	}
	public function getRows($result){
	    $rows = mysql_num_rows($result);
		return $rows;
	}
	public function getFetch($result){
	    $fetch = mysql_fetch_array($result);
		return $fetch;
	}
	
   //**************  Group Command ***********************************
   //                  Max() Min() Sum() AVG() 
   public function getMax_Column($table,$filed,$where){ //หาค่ามากสุด  :: ชื่อตาราง,ฟิวส์ที่หาค่า,คำสั่ง Where
      if($where != "") $where = " where $where ";
         $sql = "select max($filed) as result from $table $where";
	  $result = $this->query($sql);
	  $fetch = mysql_fetch_array($result);
	  return $fetch['result'];
   }
   
   public function getMin_Column($table,$filed,$where){  //หาค่าน้อยสุด  :: ชื่อตาราง,ฟิวส์ที่หาค่า,คำสั่ง Where
      if($where != "") $where = " where $where ";
         $sql = "select min($filed) as result from $table $where";
	  $result = $this->query($sql);
	  $fetch = mysql_fetch_array($result);
	  return $fetch['result'];
   }
   
   public function getSum_Column($table,$filed,$where){  //หาค่าผลรวม  :: ชื่อตาราง,ฟิวส์ที่หาค่า,คำสั่ง Where
      if($where != "") $where = " where $where ";
         $sql = "select sum($filed) as result from $table $where";
	  $result = $this->query($sql);
	  $fetch = mysql_fetch_array($result);
	  return $fetch['result'];
   }
   
   public function getAvg_Column($table,$filed,$where){  //หาค่าเฉลี่ย  :: ชื่อตาราง,ฟิวส์ที่หาค่า,คำสั่ง Where
      if($where != "") $where = " where $where ";
         $sql = "select avg($filed) as result from $table $where";
	  $result = $this->query($sql);
	  $fetch = mysql_fetch_array($result);
	  return $fetch['result'];
   }  
}
?>